package com.nine.service;

import com.nine.dao.BillsMapper;
import com.nine.entity.Account;

/**
 * @author hubing
 *
 */
public interface BillsService {

	/**
	 * 通过登录用户主键（ID），查询登录用户的余额
	 * 
	 * @param id
	 * @return 返回登录用户余额
	 */
	public float selectAccountMoneyByUserId(int id);

	/**
	 * 根据用户表（username）查询用户是否存在，且非注册会员。
	 * 
	 * @param username
	 * @return 1：会员存在，非注册会员可转账。0：会员不存在或是注册会员，不可转账。
	 */
	public int validationMemberByUsername(String username);

	/**
	 * 验证用户银行账户余额是否足够转账。
	 * 
	 * @param id    用户ID
	 * @param money 转账金额
	 * @return 1：足够转账。0：不够转账。
	 */
	public boolean validationMoney(int id, float money);

	/**
	 * 验证登录用户二级支付密码是否正确
	 * 
	 * @param id      登录用户主键（ID）
	 * @param paycode 登录用户支付密码（paycode）
	 * @return true：正确;false：错误;
	 */
	boolean verificationPassword(int id, int paycode);

	/**
	 * 减少登录用户银行余额，增加目标用户余额。添加两条交易订单记录到数据库
	 * 
	 * @param uid   登录用户ID
	 * @param rid   目标用户ID
	 * @param money 转账金额
	 */
	void transferOperation(int uid, String rid, float money);

	/**
	 * 获取20位订单号,转账用户的订单号
	 * 
	 * @return 长度为20的字符串
	 */
	public String getBidUUID();

	/**
	 * 获取20位订单号,转账目标用户的订单号
	 * @param bid 转账用户的订单号
	 * @return 长度为20的字符串
	 */
	public String getRidUUID(String bid);

}
